package com.z.redis;

import com.z.redis.resp.Resp;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;

/**
 * 将Resp对象编码成字节流
 */
public class ResponseEncoder extends MessageToByteEncoder<Resp> {

    @Override
    protected void encode(ChannelHandlerContext ctx, Resp resp, ByteBuf byteBuf) throws Exception {
        try {
            Resp.write(resp,byteBuf); // 将Resp对象写入ByteBuf
//            byteBuf.writeBytes(byteBuf);
        }catch (Exception e){
            ctx.close(); // 异常时关闭连接
        }
    }

}
